<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Projetos_model extends CI_Model{
    
    public $userKey;

    public function __construct(){
        parent::__construct();
        $this->userKey = $this->session->userdata('userKey');
    }

    // Retorna todos os registros
    public function getProjetosByCatg($catg){
         $this->db->select('P.*,B.DESCRICAO AS BANCA');
        $this->db->from('projetos AS P');
        $this->db->join('banca as B', 'B.CODIGO = P.COD_BANCA');

        $this->db->where('P.COD_CATEGORIA', $catg);
        $sql = $this->db->get();
        if($sql->num_rows > 0){
            return $sql->result();
        }else{
            return NULL;
        }
    }
    public function getProjetosById($codigo){
        $this->db->where('CODIGO', $codigo);
        $sql = $this->db->get('projetos');
        if($sql->num_rows > 0){
            return $sql->row();
        }else{
            return NULL;
        }
    }
    public function projetosRecentes($quantidade=1){
        $this->db->order_by('P.CODIGO DESC' );
         $this->db->select('P.*');
        $this->db->join('projetos_categorias as PC', 'PC.CODIGO = P.COD_CATEGORIA');

        $this->db->where('PC.STATUS', '1');
        $sql = $this->db->get('projetos P', $quantidade);
        //die($this->db->last_query());
        if($sql->num_rows > 0){
             return $sql->result();
        }else{
            return NULL;
        }
    }
     

    public function getCategorias($status=null){
        $this->db->order_by('STATUS DESC, CODIGO ASC' );
        if (!is_null($status)){
            $this->db->where('STATUS',$status);
        }
    	$sql = $this->db->get('projetos_categorias');
      //  DIE($this->db->last_query());
    	if($sql->num_rows > 0){
            return $sql->result();
        }else{
            return NULL;
        }
    }
    public function getBancas($status=null){
        $this->db->order_by('STATUS DESC, CODIGO ASC' );
        if (!is_null($status)){
            $this->db->where('STATUS',$status);
        }
    	$sql = $this->db->get('banca');
      
    	if($sql->num_rows > 0){
            return $sql->result();
        }else{
            return NULL;
        }
    }
     public function getBancaById($id){
        $this->db->where('CODIGO', $id);
        $sql = $this->db->get('banca');

        if($sql->num_rows > 0){
            return $sql->row();
        }else{
            return NULL;
        }
    }

    public function getCategoriasById($id){
        $this->db->where('CODIGO', $id);
        $sql = $this->db->get('projetos_categorias');

        if($sql->num_rows > 0){
            return $sql->row();
        }else{
            return NULL;
        }
    }
    public function getCategoriasDisciplinaById($id){
        $this->db->where('CODIGO', $id);
        $sql = $this->db->get('categoria_disciplina');

        if($sql->num_rows > 0){
            return $sql->row();
        }else{
            return NULL;
        }
    }
    public function getCategoriasDisciplina(){
        $this->db->order_by('descricao ASC');
        $sql = $this->db->get('categoria_disciplina');
        
        if($sql->num_rows > 0){
            return $sql->result_array();
        }else{
            return NULL;
        }
    }
    public function novoProjeto($dados){
        if(!empty($dados)){
            $this->db->insert('projetos', $dados);        
            return $this->db->insert_id();
        }
        return false;
    }
    
     public function editaProjeto($id,$dados){
         $this->db->where('CODIGO', $id);
        if($this->db->update('projetos', $dados)){            
            return TRUE;
        }else{
            return FALSE;
        }
    }
    public function  getProjetoDisciplina($cod_projeto,$cod_disciplina){
         $this->db->where('COD_PROJETO  ', $cod_projeto);
         $this->db->where('COD_DISCIPLINA  ', $cod_disciplina);
         
        $sql = $this->db->get('projeto_disciplina');
        
        
        if($sql->num_rows > 0){
            return $sql->row();
        }else{
            return NULL;
        }
    }
    public function getBibliografiabyDisciplina($cod_disciplina){
        $this->db->select();
        $this->db->from('bibliografia as B');
        $this->db->join('disciplinabibliografia as DB', 'DB.COD_BIBLIOGRAFIA = B.CODIGO');
        $this->db->where('DB.COD_DISCIPLINA',$cod_disciplina);
        $sql=$this->db->get();
        if($sql->num_rows > 0){
            return $sql->result_array();
        }else{
            return NULL;
        }
    }
    public function getDisciplinaByBanca($cod_banca){ 
        $this->db->select("D.*");
        $this->db->where('COD_BANCA ', $cod_banca);        
        $this->db->join('disciplinas as D', 'D.CODIGO = BD.COD_DISCIPLINA');
        $sql = $this->db->get('banca_disciplina as BD');
        if($sql->num_rows > 0){
            return $sql->result_array();
        }else{
            return NULL;
        }
    }
    public function getTopicoBancaByDisciplina($cod_banca,$codigo){
       $this->db->distinct();
         $this->db->select("BT.*");
        $this->db->where('COD_BANCA ', $cod_banca);        
        $this->db->join('topicobanca_topico as TBT', 'TBT.COD_TOPICO_BANCA = BT.CODIGO');
        $this->db->join('topico as T', 'T.CODIGO = TBT.COD_TOPICO_LIVRO');
        $this->db->where('T.COD_DISCIPLINA ', $codigo);   
            $sql = $this->db->get('banca_topico as BT');
           // die( $this->db->last_query());
        if($sql->num_rows > 0){
            
            return $sql->result_array();
        }else{
            return NULL;
        }
    }
 public function  getBancaDisciplina($cod_banca,$cod_disciplina){
         $this->db->where('COD_BANCA  ', $cod_banca);
         $this->db->where('COD_DISCIPLINA  ', $cod_disciplina);
        $sql = $this->db->get('banca_disciplina');

        if($sql->num_rows > 0){
            return $sql->row();
        }else{
            return NULL;
        }
    }
    public function novoProjetoDisciplina($dados) {
         if(!empty($dados)){
             if (is_null($this->getProjetoDisciplina($dados['COD_PROJETO'],$dados['COD_DISCIPLINA']))){
                $this->db->insert('projeto_disciplina', $dados);        
                return $this->db->insert_id();
             }
             return true;
         }
         return false;
    
    }
     public function novaBancaDisciplina($dados) {
         if(!empty($dados)){
             if (is_null($this->getBancaDisciplina($dados['COD_BANCA'],$dados['COD_DISCIPLINA']))){
                $this->db->insert('banca_disciplina', $dados);        
                return $this->db->insert_id();
             }
             return true;
         }
         return false;
    
    }
    public function novoTopicoBanca($dados) {
         if(!empty($dados)){
             if ($this->db->insert('banca_topico', $dados)){  
                return $this->db->insert_id();
             }else{
                return null; 
             }
         }
         return null;
    
    }
     public function novoTopicoBanca_topico($dados) {
         if(!empty($dados)){
             if ($this->db->insert('topicobanca_topico', $dados)){  
                return $this->db->insert_id();
             }else{
                return null; 
             }
         }
         return null;
    
    }
    public function getTopicosByDisciplina($cod_disciplina){
        $this->db->select("T.CODIGO,T.DESCRICAO,BT.DESCRICAO AS TOP_BANCA");
        $this->db->where('T.COD_DISCIPLINA', $cod_disciplina);        
       // $this->db->where('TBT.COD_TOPICO_BANCA ', $codTopicoBanca);        
        $this->db->join('topicobanca_topico as TBT', 'TBT.COD_TOPICO_LIVRO = T.CODIGO');
        $this->db->join('banca_topico as BT', 'BT.CODIGO = TBT.COD_TOPICO_BANCA');
        $this->db->order_by('BT.DESCRICAO');
        $sql = $this->db->get('topico as T');
        //die($this->db->last_query());
        if($sql->num_rows > 0){
            return $sql->result_array();
        }else{
            return NULL;
        }
        //0.0012 sec
    }
    public function getTopicosLivroByTopicoBanca($codTopicoBanca){
       $this->db->select("T.*");
        $this->db->where('TBT.COD_TOPICO_BANCA ', $codTopicoBanca);        
        $this->db->join('topicobanca_topico as TBT', 'TBT.COD_TOPICO_LIVRO = T.CODIGO');
        $sql = $this->db->get('topico as T');
        if($sql->num_rows > 0){
            return $sql->result_array();
        }else{
            return NULL;
        }
    }
    public function  removerTopicoBanca_topico($dados){
        if(!empty($dados)){
            $this->db->where('COD_TOPICO_BANCA', $dados['COD_TOPICO_BANCA']);
            $this->db->where('COD_TOPICO_LIVRO', $dados['COD_TOPICO_LIVRO']);
             if ($this->db->delete('topicobanca_topico')){  
                return true;
             }else{
                return null; 
             }
         }
         return null;
    }
    
     public function removerBancaDisciplina($dados) {
         if(!empty($dados)){
             $this->db->where('COD_BANCA  ', $dados['COD_BANCA']);
         $this->db->where('COD_DISCIPLINA  ', $dados['COD_DISCIPLINA']);
           if( $this->db->delete('banca_disciplina')){
               return true;
         }}
         return false;
    
    }
    
     public function  getProjetoTopico($cod_projeto,$cod_topico){
         $this->db->where('COD_PROJETO  ', $cod_projeto);
         $this->db->where('COD_TOPICO  ', $cod_topico);
        $sql = $this->db->get('projeto_topico');

        if($sql->num_rows > 0){
            return $sql->row();
        }else{
            return NULL;
        }
    }
    public function novoProjetoTopicos($dados) {
         if(!empty($dados)){
        if (is_null($this->getProjetoTopico($dados['COD_PROJETO'],$dados['COD_TOPICO']))){
            $this->db->insert('projeto_topico', $dados);        
            return $this->db->insert_id();
        }
         }
         return false;
    
    }
    public function novaCategoria($dados){
        if(!empty($dados))
        $this->db->insert('projetos_categorias', $dados);
        
        return $this->db->insert_id();
    }
    public function novaBanca($dados){
        if(!empty($dados))
        $this->db->insert('banca', $dados);
        
        return $this->db->insert_id();
    }
    
     public function editaCategoria($id,$dados){
         $this->db->where('CODIGO', $id);
        if($this->db->update('projetos_categorias', $dados)){            
            return TRUE;
        }else{
            return FALSE;
        }
    }
    public function editaBanca($id,$dados){
         $this->db->where('CODIGO', $id);
        if($this->db->update('banca', $dados)){            
            return TRUE;
        }else{
            return FALSE;
        }
    }
    public function editaCategoriaDisciplina($id,$dados){
         $this->db->where('CODIGO', $id);

        if($this->db->update('categoria_disciplina', $dados)){
            
            return TRUE;
        }else{
            return FALSE;
        }
    }
    public function getPlanos($codigo=null){
        $sql = $this->db->select('*,(VALOR-(VALOR*DESCONTO)/100) AS VALOR_DESCONTO');
        if (!is_null($codigo)){
            $sql = $this->db->where('CODIGO',$codigo);
        }
       $sql = $this->db->get('planos');

        if($sql->num_rows > 0){
             if (!is_null($codigo)){
                 return $sql->row_array();
            }
            return $sql->result_array();
        }else{
            return NULL;
        }
    }
}
